package cn.bonoon.kernel;

/**
 * <pre>
 * 用户查看、操作数据的范围；如果是用户操作级别的，参考{@link VisibleLevel}
 * 定义如下：
 * {@link #NULL}
 * {@link #DOMAIN}
 * {@link #EXCLUSIVE}
 * {@link #GLOBAL}
 * 
 * 使用范围限制的条件是被操作的功能的实体对象必须实现{@link cn.bonoon.kernel.support.entities.EntityScopable EntityScopable}接口
 * </pre>
 * @author jackson
 *
 * @see cn.bonoon.kernel.support.entities.EntityScopable EntityScopable
 * @see VisibleLevel
 */
public enum VisibleScope {
	
	/** <pre> 没有指定范围，则会使用具体实现中定义的处理方式
	 * <font color='red'>如果是非管理人员被指定了该属性，则不允许操作任何的数据，包括自己的数据</font></pre> */
	NULL,
	
	/** 默认，域范围，即需要具有相同的ownerid的实体 */
	DOMAIN,
	
	/** 专属范围，即只有creatorid与当前登录用户的id相同才允许操作 */
	EXCLUSIVE,
	
	/** <pre> 所有的操作范围
	 * 如果被定义为全局域范围的，不管是否管理员或超级管理员，该功能都可以被访问操作 </pre> */
	GLOBAL;
}
